package com.atguigu.lease.web.admin.service;

import com.atguigu.lease.model.entity.SystemUser;
import com.atguigu.lease.model.enums.BaseStatus;
import com.atguigu.lease.web.admin.vo.system.user.SystemUserItemVo;
import com.atguigu.lease.web.admin.vo.system.user.SystemUserQueryVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * @author liubo
 * @description 针对表【system_user(员工信息表)】的数据库操作Service
 * @createDate 2023-07-24 15:48:00
 */
public interface SystemUserService extends IService<SystemUser> {

    /**
     * 根据条件分页查询后台用户列表
     *
     * @param current 当前页
     * @param size    每页大小
     * @param queryVo 查询条件
     * @return 用户列表
     */
    IPage<SystemUserItemVo> getUserItemPageByQuery(long current, long size, SystemUserQueryVo queryVo);

    /**
     * 根据ID查询后台用户信息
     *
     * @param id 用户id
     * @return 用户信息
     */
    SystemUserItemVo getUserItemById(Long id);

    /**
     * 判断后台用户名是否存在
     *
     * @param username 用户名
     * @return 是否存在
     */
    Boolean usernameExists(String username);

    /**
     * 根据ID修改后台用户状态
     *
     * @param id     用户id
     * @param status 状态
     */
    void updateSystemUserStatus(Long id, BaseStatus status);
}
